<?php

namespace app\backend\model;

use app\component\IdentityInterface;
use support\Model;

/**
 * This is the model class for table "sys_user".
 *
 * @property int    $id            用户ID
 * @property string $auid          唯一标识符号
 * @property int    $dept_id       部门ID
 * @property string $phone         手机号码
 * @property string $nickname      姓名
 * @property string $password      密码
 * @property string $password_hash 加密密码
 * @property string $login_ip      最后登陆IP
 * @property int    $login_date    最后登陆时间
 * @property int    $admin_type    0 : 普通管理员 1 ：超级管理员
 * @property int    $status        状态， 0 - 正常 1 - 禁用
 * @property int    $data_scope    权限 2 - 自定义数据权限 1 - 全部数据权限  超级管理员时，此字段没用
 * @property string $auth_key      cookie自动登录 验证的auth_key
 * @property string $create_auid   创建者
 * @property string $gmt_create    创建时间
 * @property string $modify_auid   更新者
 * @property string $gmt_modify    更新时间
 * @property string $remark        备注
 */
class SysUser extends Model implements IdentityInterface
{
    /**
     * 指示是否自动维护时间戳
     *
     * @var bool
     */
    public $timestamps = false;
    /**
     * 与模型关联的表名
     *
     * @var string
     */
    protected $table = 'sys_user';

    public function attributeLabels()
    {
        return [
            'id' => '用户ID',
            'auid' => '唯一标识符号',
            'dept_id' => '部门ID',
            'phone' => '手机号码',
            'nickname' => '姓名',
            'password' => '密码',
            'password_hash' => '加密密码',
            'login_ip' => '最后登陆IP',
            'login_date' => '最后登陆时间',
            'admin_type' => '0 : 普通管理员 1 ：超级管理员',
            'status' => '状态， 0 - 正常 1 - 禁用',
            'data_scope' => '权限 2 - 自定义数据权限 1 - 全部数据权限  超级管理员时，此字段没用',
            'auth_key' => 'cookie自动登录 验证的auth_key',
            'create_auid' => '创建者',
            'gmt_create' => '创建时间',
            'modify_auid' => '更新者',
            'gmt_modify' => '更新时间',
            'remark' => '备注',
        ];
    }

    /**
     * @inheritDoc
     */
    public static function findIdentity($id)
    {
        return static::where('auid', $id)->first();
    }

    /**
     * @inheritDoc
     */
    public function getId()
    {
        return $this->auid;
    }

    /**
     * @inheritDoc
     */
    public function getAuthKey()
    {
        return $this->auth_key;
    }

    /**
     * @inheritDoc
     */
    public function validateAuthKey($authKey)
    {
        return $this->auth_key === $authKey;
    }
}
